package com.xpand.guava;

import com.google.common.collect.BoundType;
import com.google.common.collect.Multiset;
import com.google.common.collect.SortedMultiset;
import com.google.common.collect.TreeMultiset;

import java.util.Set;

/**
 * @Author: wei.wang
 * @Description:
 * @Date 2017/12/27 17:03
 * @Modified
 */
public class SortedMulisetTest {
    public static void main(String[] args) {
        SortedMultiset<Integer> sortedMultiset = TreeMultiset.create();
        sortedMultiset.add(1);
        sortedMultiset.add(1);
        sortedMultiset.add(1);
        sortedMultiset.add(2);
        sortedMultiset.add(2);
        sortedMultiset.add(2);
        sortedMultiset.add(3);
        sortedMultiset.add(3);
        sortedMultiset.add(3);
        sortedMultiset.add(4);
        sortedMultiset.add(5);

        System.out.println(sortedMultiset);
        System.out.println(sortedMultiset.comparator());
        // headMultiset 指定最大值，返回小于最大值的视图
        SortedMultiset<Integer> sortedMultisetView = sortedMultiset.headMultiset(3, BoundType.OPEN);
        System.out.println(sortedMultisetView);
        // 在视图中添加视图中存在的元素可以成功（并且对源有影响），如果添加视图中不存在的元素会throw IllegalArgumentException
        sortedMultisetView.add(2);
        System.out.println(sortedMultiset);
        System.out.println(sortedMultisetView);
//        sortedMultiset.subMultiset();
    }
}
